﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using s2b.ControleDesenvolvimentoProjetos.Util.Auxiliar;
//using s2b.ControleDesenvolvimentoProjetos.Paginas;
using System.Data.SqlClient;
using s2b.ControleDesenvolvimentoProjetos.Dados.OBJ;
using System.Collections;

namespace s2b.ControleDesenvolvimentoProjetos.UserControls
{
    public partial class WUCProjeto : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CarregaClientes();
                CarregaStatus();
             //   CarregaDatas();

                if (Request.QueryString["ID_PROJETO"] != null)
                {

                    PreencheDados();
                    btnProjeto.Text = "Atualizar Projeto";

                }
                else
                {
                    btnProjeto.Text = "Adicionar Projeto";

                }
            }
        }
        private void CarregaDatas(){
            calendarFim.SelectedDate = DateTime.Now;
            calendarInicio.SelectedDate = DateTime.Now;
            txtDtFim.Text = calendarFim.SelectedDate.ToString("dd/MM/yyy");
            txtDtInicio.Text = calendarInicio.SelectedDate.ToString("dd/MM/yyy");
            


        }
        public void PreencheDados()
        {

            if (!IsPostBack)
            {

                SqlDataReader executa = Auxiliar.RetornaRegistros(String.Format("SELECT * FROM PROJETO WHERE ID_PROJETO = {0}", Request.QueryString["ID_PROJETO"]), "PROJETO");


                while (executa.Read())
                {
                    txtCargaHoraria.Text = executa["CARGA_HORARIA"].ToString();
                    txtDescProjeto.Text = executa["DESC_PROJETO"].ToString();
                    calendarInicio.SelectedDate = Convert.ToDateTime(executa["DT_INICIO_PROJ"]);
                    calendarFim.SelectedDate = Convert.ToDateTime(executa["DT_FINAL_PREV"]);
                    txtDtInicio.Text = calendarInicio.SelectedDate.ToString("dd/MM/yyy");
                    txtDtFim.Text = calendarFim.SelectedDate.ToString("dd/MM/yyy");
                    txtNomeProjeto.Text = executa["NOME_PROJETO"].ToString();
                    ddlCliente.SelectedValue = executa["ID_CLIENTE"].ToString();
                    ddlStatus.SelectedValue = executa["ID_STATUS"].ToString();
                }
                Auxiliar.FecharConexao();


            }
        }

        public void InsertProjeto()
        {
            try
            {
                Auxiliar.ExecutaComando(String.Format(@"INSERT INTO PROJETO (ID_CLIENTE, DESC_PROJETO, DT_INICIO_PROJ, DT_FINAL_PREV, ID_STATUS, CARGA_HORARIA, NOME_PROJETO, CARG_HOR_UTILIZ)
VALUES({0},'{1}','{2}','{3}',{4},{5},'{6}',{7})", ddlCliente.SelectedValue, txtDescProjeto.Text, calendarInicio.SelectedDate, calendarFim.SelectedDate, ddlStatus.SelectedValue, txtCargaHoraria.Text, txtNomeProjeto.Text, 0));

               lblMsg.Text = "Projeto adicionado com sucesso!";

            }
            catch (Exception ex)
            {
                lblMsg.Text = "Erro ao adicionar projeto! " + ex; ;
            }
        }


        public void UpdateProjeto()
        {

            try
            {

                Auxiliar.ExecutaComando(String.Format("UPDATE PROJETO SET ID_CLIENTE = {0}, DESC_PROJETO = '{1}', DT_INICIO_PROJ = '{2}', DT_FINAL_PREV = '{3}', ID_STATUS = {4}, CARGA_HORARIA = {5}, NOME_PROJETO = '{6}' WHERE ID_PROJETO= {7}",
                   ddlCliente.SelectedValue, txtDescProjeto.Text, calendarInicio.SelectedDate, calendarFim.SelectedDate, ddlStatus.SelectedValue, txtCargaHoraria.Text, txtNomeProjeto.Text, Request.QueryString["ID_PROJETO"]));

                Response.Redirect("WFVisualizaProjeto.aspx", false);

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public void CarregaStatus()
        {

            List<Status> listStatus = new List<Status>();
        
            SqlDataReader executa = Auxiliar.RetornaRegistros("SELECT * FROM STATUS", "STATUS");
            while (executa.Read())
            {
                Status status = new Status();
               
                status.Id_status = Convert.ToInt32(executa["ID_STATUS"]);
                status.Desc_status = executa["DESC_STATUS"].ToString();
                listStatus.Add(status);
            }
            Auxiliar.FecharConexao();
            foreach (Status statusX in listStatus)
            {
                ddlStatus.Items.Add(new ListItem() { Text = statusX.Desc_status, Value = statusX.Id_status.ToString() });
            }
        }
        public void CarregaClientes()
        {


            List<Cliente> clientes = new List<Cliente>();


            SqlDataReader executa = Auxiliar.RetornaRegistros("SELECT * FROM CLIENTE", "CLIENTE");
            while (executa.Read())
            {
                Cliente cliente = new Cliente();
                cliente.Id_Cliente = Convert.ToInt32(executa["ID_CLIENTE"]);
                cliente.Razao_social = executa["RAZAO_SOCIAL"].ToString();
                clientes.Add(cliente);
            }
            Auxiliar.FecharConexao();
            foreach (Cliente clienteX in clientes)
            {
                ddlCliente.Items.Add(new ListItem() { Text = clienteX.Razao_social, Value = clienteX.Id_Cliente.ToString() });
            }


        }


        protected void imgBtnCalendarInicio_Click(object sender, ImageClickEventArgs e)
        {
            calendarInicio.Visible = !calendarInicio.Visible;

        }

        protected void imgBtnCalendarFim_Click(object sender, ImageClickEventArgs e)
        {
            calendarFim.Visible = !calendarFim.Visible;
        }

        protected void calendarInicio_SelectionChanged(object sender, EventArgs e)
        {
            txtDtInicio.Text = calendarInicio.SelectedDate.ToString("dd/MM/yyy");
            calendarInicio.Visible = false;
        }

        protected void calendarFim_SelectionChanged(object sender, EventArgs e)
        {
            txtDtFim.Text = calendarFim.SelectedDate.ToString("dd/MM/yyy");
            calendarFim.Visible = false;
        }

        protected void btnProjeto_Click(object sender, EventArgs e)
        {
            if (Request.QueryString["ID_PROJETO"] != null)
            {
                UpdateProjeto();

            }
            else
            {

                InsertProjeto();

            }

            ddlCliente.SelectedIndex = -1;
            ddlStatus.SelectedIndex = -1;
            txtCargaHoraria.Text = "";
            txtDescProjeto.Text = "";
            txtDtFim.Text = "";
            txtDtInicio.Text = "";
            txtNomeProjeto.Text = "";
        }
    }
}